查看原文
其他

【高并发】一分钟了解什么是限流

冰河团队 冰河技术 2022-09-10

点击上方蓝色“冰河技术”,关注并选择“设为星标”

持之以恒,贵在坚持,每天进步一点点!



作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:

https://github.com/sunshinelyz/mykit-delay

PS: 欢迎各位Star源码,也可以pr你牛逼哄哄的代码      


在开发高并发系统时,有很多手段可以保护系统,如:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统处理能力。降级是当服务出问题或影响到核心流程的性能,需要暂时屏蔽掉,待高峰过去或者问题解决后再打开。有些场景不适合用缓存或降级,比如稀缺资源(秒杀、抢购)、写服务(评论、下单)、频繁的复杂查询(评论的最后几页)等,这些场景可以用限流限制并发/请求量。


限流的目的是通过对并发访问/请求进行限速或者一个事件窗口内的请求进行限速来保护系统,一旦达到限制速率可以拒绝服务(定向到错误页或告知资源没有了)、排队或等待(比如秒杀、评论、下单)、降级(返回兜底数据或默认数据,如商品详情页库存默认有货)。


一般开发高并发系统常见的限流有:限制总并发数(比如数据库连接池、线程池)、限制瞬时并发数(如Nginx的limit_conn模块,用来限制瞬时并发连接数)、限制时间窗口内的平均速率(如Guava的RateLimiter、Nginx的limit_req模块,用来限制每秒的平均速率),以及限制远程接口调用速率、限制MQ消费速率等。还可以根据网络连接数、网络流量、CPU或内存负载等来限流。

后记:

记住:你比别人强的地方,不是你做过多少年的CRUD工作,而是你比别人掌握了更多深入的技能。不要总停留在CRUD的表面工作,理解并掌握底层原理并熟悉源码实现,并形成自己的抽象思维能力,做到灵活运用,才是你突破瓶颈,脱颖而出的重要方向!

你在刷抖音,玩游戏的时候,别人都在这里学习,成长,提升,人与人最大的差距其实就是思维。你可能不信,优秀的人,总是在一起。。

扫一扫或长按二维码

关注冰河技术微信公众号



如果你喜欢这篇文章,欢迎点赞和转发。

生活很美好,明天见(。・ω・。)ノ♡


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存